Imports System.Collections.ObjectModel
Imports System.Data.Common
Imports System.Collections.Generic
Imports System.Runtime.InteropServices
Imports System.Data.SqlClient
Imports System.Data
Imports Microsoft.Practices.EnterpriseLibrary.Data

Imports BusinessEntities

<Serializable()> _
Public Class PropuestaDA
    Inherits Base
    Implements iPropuestaDAO

    Public Function ObtenerPropuestaActiva() As DataTable Implements iPropuestaDAO.ObtenerPropuestaActiva
        Try
            Using command As DbCommand = Me.DataBase.GetStoredProcCommand("pa_Propuesta_Activa")
                Using ds As DataSet = Me.DataBase.ExecuteDataSet(command)
                    If ds.Tables.Count.Equals(0) Then
                        Return Nothing
                    Else
                        Return ds.Tables(0)
                    End If
                End Using
            End Using
        Catch ex As Exception
            Throw
        End Try
    End Function
    Public Function ConsultaPropuesta(ByVal strCodPropuesta As String, ByVal strCodProveedor As String, ByVal strNombrePropuesta As String) As DataTable Implements iPropuestaDAO.ConsultaPropuesta
        Try
            Using command As DbCommand = Me.DataBase.GetStoredProcCommand("srt_consultaPropuesta")
                Me.DataBase.AddInParameter(command, "@codConvocatoria", DbType.String, strCodPropuesta)
                Me.DataBase.AddInParameter(command, "@codProveedor", DbType.String, strCodProveedor)
                Me.DataBase.AddInParameter(command, "@nombrePropuesta", DbType.String, strNombrePropuesta)

                Using ds As DataSet = Me.DataBase.ExecuteDataSet(command)
                    If ds.Tables.Count.Equals(0) Then
                        Return Nothing
                    Else
                        Return ds.Tables(0)
                    End If
                End Using
            End Using
        Catch ex As Exception
            Throw
        End Try
    End Function


    Public Function RegistrarPropuesta(ByVal objBE As PropuestaBE) As Boolean Implements iPropuestaDAO.RegistrarPropuesta

        Try
            Using command As DbCommand = Me.DataBase.GetStoredProcCommand("pa_propuesta_registrar")
                Me.DataBase.AddOutParameter(command, "@IdPropuesta", DbType.Int32, objBE.Id)
                Me.DataBase.AddInParameter(command, "@nombre", DbType.String, objBE.Nombre)
                Me.DataBase.AddInParameter(command, "@fechapropuesta", DbType.DateTime, objBE.FechaPropuesta)
                Me.DataBase.AddInParameter(command, "@precio", DbType.Double, objBE.Precio)
                Me.DataBase.AddInParameter(command, "@codigoproveedor", DbType.String, objBE.CodigoPropuestaProveedor)
                If objBE.FechaVisita Is Nothing Then
                    Me.DataBase.AddInParameter(command, "@fechavisita", DbType.DateTime, DBNull.Value)
                Else
                    Me.DataBase.AddInParameter(command, "@fechavisita", DbType.DateTime, objBE.FechaVisita.Value)
                End If
                Me.DataBase.AddInParameter(command, "@propuesta", DbType.String, objBE.Propuesta)
                Me.DataBase.AddInParameter(command, "@convocatoria", DbType.Int32, objBE.Convocatoria)
                Me.DataBase.AddInParameter(command, "@preseleccionado", DbType.Int32, objBE.Preseleccionado)

                If Me.DataBase.ExecuteNonQuery(command) > 0 Then
                    objBE.Id = DataBase.GetParameterValue(command, "@IdPropuesta")

                    Return True
                End If

                Return False
            End Using
        Catch ex As Exception
            Throw
        End Try
    End Function



End Class